package blackitheima1.Anno;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

//利用反射的思想来解决这个问题 有@Test的方法就执行
public class AnnoTest {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, InvocationTargetException {
        //提取其Class字节码文件
        Class<?> aClass = Class.forName("blackitheima1.Anno.Cat");
        //创建对象
        Cat cat = (Cat) aClass.newInstance();
        //提取所有成员方法
        Method[] declaredMethods = aClass.getDeclaredMethods();
        //遍历成员方法的数组,判断其是否有@Test注解
        for (Method declaredMethod : declaredMethods) {
            if(declaredMethod.isAnnotationPresent(Test.class)){
                //调用方法
                Object invoke = declaredMethod.invoke(cat);
                System.out.println(invoke);
            }
        }
    }
}
